/**
 * Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。
 * 它采用集中式存储管理应用的所有组件的状态，
 * 并以相应的规则保证状态以一种可预测的方式发生变化。
 * uni-app 内置了 Vuex 。
 */
import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)//vue的插件机制

// Vuex.Store 构造器选项
const store = new Vuex.Store({
	state: { // 存放状态
		isLogin: false,
		orderType: 'takein',
		userInfo: {
		},
	},
	mutations: {
		//登录
		Login(state, res) {
			state.isLogin = true
			state.userInfo = res
			uni.setStorage({
				key: 'userinfo',
				data: res
			})
		},
		//登录1
		Logins(state, res) {
			state.isLogin = res
		}, 
		//登出
        Logout(state) {
			state.isLogin = false
			state.userInfo = {}
			uni.clearStorageSync('userinfo')
			uni.clearStorageSync('token')
		},
		//修改头像昵称
		UpdateInfo(state, res) {
			state.userInfo={
				...state.userInfo,
				...res
			}
			// state.userInfo.nickName = res.nickName
			uni.setStorage({
				key: 'userinfo',
				data: state.userInfo
			})
		},
		
	},
	actions: {
		Logout(context){
		  context.commit('Logout')
		},
        // 初始化登录状态（应用启动时调用）
        initLoginState({ commit }) {
          const token = uni.getStorageSync('token');
          const userInfo = uni.getStorageSync('userInfo');
		  console.log('11111',token,userInfo)
          if (token && userInfo) {
            commit('Login', userInfo);
          }
        }
	}
})
export default store
